package com.mzj.saas.mservice.bill.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

@ApiModel
public class HouseExpenseBillRuleVO {
    /*
     *id
     */
    @ApiModelProperty(value = "id")
    private String id;
    /**
     * 记录名称
     */
    @ApiModelProperty(value = "记录名称")
    private String name;
    /**
     * 所属小区
     */
    @ApiModelProperty(value = "所属小区")
    private String communityId;
    /**
     * 所属小区名
     */
    @ApiModelProperty(value = "所属小区名")
    private String communityName;
    /**
     * 账单生成数量(房屋数量)
     */
    @ApiModelProperty(value = "账单生成数量(房屋数量)")
    private Integer number;
    /**
     * 账单开始时间
     */
    @ApiModelProperty(value = "账单开始时间")
    private Date startTime;
    /**
     * 账单结束时间
     */
    @ApiModelProperty(value = "账单结束时间")
    private Date endTime;
    /**
     * 缴费截至日期
     */
    @ApiModelProperty(value = "缴费截至日期")
    private Date closeTime;
    /**
     * 收费项目(1水费 2电费 3物业费 4宽带费 5电视费 6煤气费 7暖气费 8租金 9押金)
     */
    @ApiModelProperty(value = "收费项目(1水费 2电费 3物业费 4宽带费 5电视费 6煤气费 7暖气费 8租金 9押金)")
    private Integer chargeType;
    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private String operatorId;
    /**
     * 生成时间
     */
    @ApiModelProperty(value = "生成时间")
    private Date createTime;
    // 起数
    private Integer startNum;
    // 止数
    private Integer endNum;
    // 类型：1公租房 2非公租房
    private Integer type;
    // 收费项目id
    private String expenseId;
    // 收费项目
    private String expenseName;
    // 账单范围选择[ 1物业、2小区、3楼栋、4单元、5房号]
    private Integer scope;
    // 1前 2后
    private Integer flag;
    // 天数
    private Integer day;
    // 时间标志：1开始时间 2结束时间
    private Integer dateFlag;

    private List<HouseExpenseRuleRefVO> houseExpenseRuleRefVOList = new ArrayList<>();
    // 原始账单记录选中数据
    List<Map<String, Object>> resultList = new ArrayList<>();

    // 收款单位
    private Long collectionOrg;
    // 收款单位名称
    private String collectionOrgName;
    // 机构ID
    private Long orgId;

    // 单位名称
    private String companyName;

    /**
     * 违约金是否生成状态 ： 0不生成 1生成
     */
    @ApiModelProperty(value = "违约金是否生成状态 ： 0不生成 1生成")
    private Integer violateStatus;
    /**
     * 违约金比例 单位%
     */
    @ApiModelProperty(value = "违约金比例 单位%")
    private BigDecimal violateRatio;

    public Integer getViolateStatus() {
        return violateStatus;
    }

    public void setViolateStatus(Integer violateStatus) {
        this.violateStatus = violateStatus;
    }

    public BigDecimal getViolateRatio() {
        return violateRatio;
    }

    public void setViolateRatio(BigDecimal violateRatio) {
        this.violateRatio = violateRatio;
    }


    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public Long getOrgId() {
        return orgId;
    }

    public void setOrgId(Long orgId) {
        this.orgId = orgId;
    }

    public Integer getDateFlag() {
        return dateFlag;
    }

    public void setDateFlag(Integer dateFlag) {
        this.dateFlag = dateFlag;
    }

    public List<Map<String, Object>> getResultList() {
        return resultList;
    }

    public void setResultList(List<Map<String, Object>> resultList) {
        this.resultList = resultList;
    }

    public String getExpenseName() {
        return expenseName;
    }

    public void setExpenseName(String expenseName) {
        this.expenseName = expenseName;
    }

    public Integer getScope() {
        return scope;
    }

    public void setScope(Integer scope) {
        this.scope = scope;
    }

    public Integer getFlag() {
        return flag;
    }

    public void setFlag(Integer flag) {
        this.flag = flag;
    }

    public Integer getDay() {
        return day;
    }

    public void setDay(Integer day) {
        this.day = day;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public String getExpenseId() {
        return expenseId;
    }

    public void setExpenseId(String expenseId) {
        this.expenseId = expenseId;
    }

    public String getCommunityName() {
        return communityName;
    }

    public void setCommunityName(String communityName) {
        this.communityName = communityName;
    }

    public Integer getStartNum() {
        return startNum;
    }

    public void setStartNum(Integer startNum) {
        this.startNum = startNum;
    }

    public Integer getEndNum() {
        return endNum;
    }

    public void setEndNum(Integer endNum) {
        this.endNum = endNum;
    }

    public List<HouseExpenseRuleRefVO> getHouseExpenseRuleRefVOList() {
        return houseExpenseRuleRefVOList;
    }

    public void setHouseExpenseRuleRefVOList(List<HouseExpenseRuleRefVO> houseExpenseRuleRefVOList) {
        this.houseExpenseRuleRefVOList = houseExpenseRuleRefVOList;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCommunityId() {
        return communityId;
    }

    public void setCommunityId(String communityId) {
        this.communityId = communityId;
    }

    public Integer getNumber() {
        return number;
    }

    public void setNumber(Integer number) {
        this.number = number;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Date getCloseTime() {
        return closeTime;
    }

    public void setCloseTime(Date closeTime) {
        this.closeTime = closeTime;
    }

    public Integer getChargeType() {
        return chargeType;
    }

    public void setChargeType(Integer chargeType) {
        this.chargeType = chargeType;
    }

    public String getOperatorId() {
        return operatorId;
    }

    public void setOperatorId(String operatorId) {
        this.operatorId = operatorId;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Long getCollectionOrg() {
        return collectionOrg;
    }

    public void setCollectionOrg(Long collectionOrg) {
        this.collectionOrg = collectionOrg;
    }

    public String getCollectionOrgName() {
        return collectionOrgName;
    }

    public void setCollectionOrgName(String collectionOrgName) {
        this.collectionOrgName = collectionOrgName;
    }
}
